TPTP Axioms File: SWV010^0.ax


%------------------------------------------------------------------------------
% File     : SWV010^0 : TPTP v8.2.0. Released v3.7.0.
% Domain   : Software Verification (Security)
% Axioms   : Translation from Binder Logic (BL) to CS4
% Version  : [Gar08] axioms.
% English  :

% Refs     : [AM+01] Alechina et al. (2001), Categorical and Kripke Semanti
%          : [Gar08] Garg (2008), Principal-Centric Reasoning in Constructi
%          : [Gar09] Garg (2009), Email to Geoff Sutcliffe
% Source   : [Gar09]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   23 (  10 unt;  12 typ;  10 def)
%            Number of atoms       :   38 (  10 equ;   0 cnn)
%            Maximal formula atoms :    5 (   1 avg)
%            Number of connectives :   20 (   0   ~;   0   |;   0   &;  20   @)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   2 avg;  20 nst)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :   46 (  46   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   24 (  23 usr;  12 con; 0-3 aty)
%            Number of variables   :   12 (  12   ^   0   !;   0   ?;  12   :)
% SPC      : 

% Comments : Requires LCL008^0.ax LCL009^0.ax
%          : This translation is not perfectly correct, because BL does not
%            admit the Barcan formula, but its translation to BM4 does. That
%            will not make a difference to the policies, however.
%          : THF0 syntax
%------------------------------------------------------------------------------
%----We now introduce one predicate for each connective of BL, and define the
%----predicates.
%----An injection from principals to formulas. Has no definition, it's symbolic.
thf(princ_inj,type,
    princ_inj: individuals > $i > $o ).

thf(bl_atom_decl,type,
    bl_atom: ( $i > $o ) > $i > $o ).

thf(bl_princ_decl,type,
    bl_princ: ( $i > $o ) > $i > $o ).

thf(bl_and_decl,type,
    bl_and: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(bl_or_decl,type,
    bl_or: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(bl_impl_decl,type,
    bl_impl: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(bl_all_decl,type,
    bl_all: ( individuals > $i > $o ) > $i > $o ).

thf(bl_true_decl,type,
    bl_true: $i > $o ).

thf(bl_false_decl,type,
    bl_false: $i > $o ).

thf(bl_says_decl,type,
    bl_says: individuals > ( $i > $o ) > $i > $o ).

thf(bl_atom,definition,
    ( bl_atom
    = ( ^ [P: $i > $o] : ( cs4_atom @ P ) ) ) ).

thf(bl_princ,definition,
    ( bl_princ
    = ( ^ [P: $i > $o] : ( cs4_atom @ P ) ) ) ).

thf(bl_and,definition,
    ( bl_and
    = ( ^ [A: $i > $o,B: $i > $o] : ( cs4_and @ A @ B ) ) ) ).

thf(bl_or,definition,
    ( bl_or
    = ( ^ [A: $i > $o,B: $i > $o] : ( cs4_or @ A @ B ) ) ) ).

thf(bl_impl,definition,
    ( bl_impl
    = ( ^ [A: $i > $o,B: $i > $o] : ( cs4_impl @ A @ B ) ) ) ).

thf(bl_all,definition,
    ( bl_all
    = ( ^ [A: individuals > $i > $o] : ( cs4_all @ A ) ) ) ).

thf(bl_true,definition,
    bl_true = cs4_true ).

thf(bl_false,definition,
    bl_false = cs4_false ).

thf(bl_says,definition,
    ( bl_says
    = ( ^ [K: individuals,A: $i > $o] : ( cs4_box @ ( cs4_impl @ ( bl_princ @ ( princ_inj @ K ) ) @ A ) ) ) ) ).

%----Validity in BL
thf(bl_valid_decl,type,
    bl_valid: ( $i > $o ) > $o ).

thf(bl_valid_def,definition,
    bl_valid = mvalid ).

%----Local authority (loca) - the strongest principal.
thf(loca_decl,type,
    loca: individuals ).

%----Every principal must entail loca, this makes loca the strongest principal.
%----This is done by adding the CS4 axiom: forall K. [] (K => loca).
thf(loca_strength,axiom,
    ( cs4_valid
    @ ( cs4_all
      @ ^ [K: individuals] : ( cs4_impl @ ( princ_inj @ K ) @ ( princ_inj @ loca ) ) ) ) ).

%------------------------------------------------------------------------------